home *** CD-ROM | disk | FTP | other *** search
/ Ray Dream Studio / Ray Dream Studio (CDRAYD1) (Ray Dream) (1995).iso / DREAMSDK.WIN / INCLUDE / XRAPI.H < prev    next >
Encoding:
C/C++ Source or Header  |  1995-10-30  |  4.9 KB  |  111 lines  |  [TEXT/mdos]

  1. /* $Id: XRAPI.H 1.60 1995/10/29 04:04:40 JOHN Exp $ */
  2. #ifndef __XRAPI__
  3. #define __XRAPI__
  4.  
  5. #ifndef __XRTYPES__
  6. #include "XRTypes.h"
  7. #endif
  8.  
  9. class TTree;
  10. class TLight;
  11. class T2DLineArt;
  12. class TCamera;
  13. class TBackground;
  14. class TBackdrop;
  15. class TAtmosphere;
  16. class TBuffer;  
  17. class SDGraphicDevice;
  18. class TRenderInfo;
  19. struct ExternalInstance;
  20.  
  21. struct RayHitParameters;
  22. struct HitInfo;
  23. struct RayHit3D;
  24. struct Ray3D;
  25.  
  26. struct RTData {
  27. void *data;
  28. long channelBits;
  29. long channelOffsetBits;
  30. long columnBits;
  31. long rowBits;
  32. short nbrChannels;
  33. };
  34.  
  35. struct RT32Data {
  36. short h;
  37. short v;
  38. TBuffer* distance;
  39. };
  40.  
  41. struct RTBuffer {
  42. RTData color;
  43. RTData distance;
  44. RTData position;
  45. RTData normal;
  46. RTData alpha;
  47. RTData index;
  48. RTData surface;
  49. RT32Data buffers32;
  50. };
  51.  
  52. typedef BOOLEAN (*TestHitProc) (TINSTANCE *theInstance);
  53.  
  54.  
  55. #if defined(qPointersD0) && defined(__MWERKS__) && defined(qPowerPC)
  56. #pragma pointers_in_D0
  57. #endif
  58.  
  59. typedef void (RDXAPITYPE *XRendererSetUniverseTreeProc)(ExternalInstance *data,TTree* tree);
  60. typedef void (RDXAPITYPE *XRendererSetCameraProc)(ExternalInstance *data,TCamera *camera);
  61. typedef void (RDXAPITYPE *XRendererSetBackdropProc)(ExternalInstance *data,const TBackdrop *backdrop);
  62. typedef void (RDXAPITYPE *XRendererSetBackgroundProc)(ExternalInstance *data,const TBackground *background);
  63. typedef void (RDXAPITYPE *XRendererSetAtmosphereProc)(ExternalInstance *data,const TAtmosphere *atmosphere);
  64.  
  65. typedef void (RDXAPITYPE *XRendererAddLightSourceProc)(ExternalInstance *data,TLight *aLight);
  66. typedef void (RDXAPITYPE *XRendererRemoveLightSourceProc)(ExternalInstance *data,TLight *aLight);
  67. typedef void (RDXAPITYPE *XRendererLightSourceModifiedProc)(ExternalInstance *data,TLight *aLight);
  68.  
  69. typedef void (RDXAPITYPE *XRendererAddInstanceProc)(ExternalInstance *data,TINSTANCE *theInstance);
  70. typedef void (RDXAPITYPE *XRendererRemoveInstanceProc)(ExternalInstance *data,TINSTANCE    *theInstance);
  71.  
  72. typedef void (RDXAPITYPE *XRendererInstanceModifiedProc)(ExternalInstance *data,TINSTANCE    *theInstance,short how);
  73.  
  74. typedef void (RDXAPITYPE *XRendererDrawProc)(ExternalInstance *data,T2DLineArt &aLineArt,const RECT &area,short mode);
  75. typedef TRenderInfo* (RDXAPITYPE *XRendererPreDrawProc)(ExternalInstance *data,TRenderInfo* renderInfo,const RECT &area,const FIXED& zoom,short mode);
  76. typedef void (RDXAPITYPE *XRendererPostDrawProc)(ExternalInstance *data, TRenderInfo* renderInfo);
  77.  
  78. //ray tracer 
  79. typedef BOOLEAN (RDXAPITYPE *XRendererRayTraceProc)(ExternalInstance *data,const VECTOR2 &uv,HitInfo& TheInfo);
  80. typedef BOOLEAN (RDXAPITYPE *XRendererCollideProc)(ExternalInstance *data,const VECTOR3 &AA,const VECTOR3 &BB,VECTOR3 &QQ,FIXED &lamda,TestHitProc proc);
  81. typedef void (RDXAPITYPE *XRendererDrawRTProc)(ExternalInstance *data,short sizeH,short sizeV,const BOX2D &uvBox,const RTBuffer &bufferData,void (*callback)(short vv,void *priv),void *priv);
  82.  
  83. //ZBuffer
  84. typedef void (RDXAPITYPE *XRendererPrepareDrawProc)(ExternalInstance *data,SDGraphicDevice *aGD,TBuffer *offscreen,TBuffer *zbuffer,const VECTOR2 &offset,void (*callback)(short vv,void *priv),void *priv);
  85. typedef void (RDXAPITYPE *XRendererRedrawInstanceProc)(ExternalInstance *data,TINSTANCE    *theInstance,const RECT& aRect,const FIXED &zoom,short mode);
  86. typedef void (RDXAPITYPE *XRendererDrawInstanceProc)(ExternalInstance *data,TRenderInfo* renderInfo,TINSTANCE    *theInstance,const RECT& aRect,const FIXED &zoom,short mode);
  87. typedef void (RDXAPITYPE *XRendererDrawAllProc)(ExternalInstance *data,const RECT& aRect,const FIXED &zoom,short mode);
  88. typedef void (RDXAPITYPE *XRendererDrawGridLineProc)(ExternalInstance *data,const VECTOR3& AA,const VECTOR3& BB, const COLOR& lineColor);
  89.  
  90. typedef BOOLEAN (RDXAPITYPE *XRendererCanRayTraceProc)(ExternalInstance *data);
  91. typedef BOOLEAN (RDXAPITYPE *XRendererCanZBufferProc)(ExternalInstance *data);
  92. typedef BOOLEAN (RDXAPITYPE *XRendererCanLineArtProc)(ExternalInstance *data);
  93.  
  94. typedef BOOLEAN (RDXAPITYPE *XRendererCanGBMaskProc)(ExternalInstance *data);
  95. typedef BOOLEAN (RDXAPITYPE *XRendererCanGBOtherProc)(ExternalInstance *data);
  96. typedef void (RDXAPITYPE *XRendererSetAmbientLightProc)(ExternalInstance *data,const COLOR &acolor);
  97. typedef void (RDXAPITYPE *XRendererSetRenderBoundsProc)(ExternalInstance *data,const BOX2D &hvBox);
  98. typedef void (RDXAPITYPE *XRendererDehydrateProc)(ExternalInstance *data,short level);
  99.  
  100. typedef long (RDXAPITYPE *XRendererGetPreprocessTimeProc)(ExternalInstance *data);
  101. typedef void (RDXAPITYPE *XRendererSetZBClipFurtherProc)(ExternalInstance *data,const RECT &aclip);
  102. typedef void (RDXAPITYPE *XRendererSetRTPixelSizeProc)(ExternalInstance *data,FIXED du,FIXED dv);
  103.  
  104. typedef void (RDXAPITYPE *XRendererGetExtraBufferParametersProc)(ExternalInstance *data,short* depth, short* nbPlanes, long* background);
  105.  
  106. #if defined(qPointersD0) && defined(__MWERKS__) && defined(qPowerPC)
  107. #pragma pointers_in_A0
  108. #endif
  109.  
  110. #endif
  111.